package com.tianhao.luo.factory;

import com.tianhao.luo.product.Iphone;

/**
 * @Date 2019/12/10
 * @Author tianhao.luo
 * @Description 定义一个用于创建Iphone对象的抽象类（工厂），
 * 它是所有工厂的抽象，具体要生产哪种Iphone交给工厂抽象子类去实现。
 * 让子类决定具体实例化哪一个Iphone对象
 */
abstract class Factory {
    /**
     * 工厂的创建功能
     * @return Iphone接口对象
     */
    abstract Iphone create();

    /**
     * 获取到创建的对象
     * @return Iphone对象
     */
    public Iphone getIphone() {
        //生成Iphone接口对象
        Iphone iphone = create();
        // ...
        //对Iphone进行处理
        return iphone;
    }
}
